Systems and methods for closed-loop control for haptic feedback

ABSTRACT

Example systems and methods for closed-loop control for haptic feedback are disclosed. One example method includes the steps of outputting a first signal configured to cause a haptic output device to output a haptic effect to a surface; determining one or more first velocities of a surface of an object attracted towards the surface in response to the haptic effect; in response to the first velocities decreasing to approximately zero, discontinuing output of the first signal; determining one or more second velocities of a surface of an object rebounding away from the surface in response to the discontinuing output of the first signal; in response to the second velocities decreasing to approximately zero, determining a responsiveness of the surface of the object to the haptic effect; and outputting a second signal based on the responsiveness.

FIELD

The present application relates generally to haptic feedback and morespecifically relates to systems and methods for closed-loop control forhaptic feedback.

BACKGROUND

Many user devices, such as smartphones, include haptic capabilities. Forexample, a conventional beeper may include an eccentric-rotating masspowered by a battery that can generate vibrational effects whenactivated. Other types of haptic devices may be incorporated as well,such as electrostatic friction haptic output devices. ESF devicesgenerate high voltage static fields, e.g., 2 kilovolts (kV), on asurface, which can attract, for example, the skin on a user's fingertowards the surface.

SUMMARY

Various examples are described for systems and methods for closed-loopcontrol for haptic feedback. One example disclosed method includes thesteps of outputting a first signal configured to cause a haptic outputdevice to output a haptic effect to a surface; determining one or morefirst characteristics of a surface of an object responding to the hapticeffect; in response to the first characteristics reaching a firstthreshold, discontinuing output of the first signal; determining one ormore second characteristics of the surface of the object responding tothe discontinuing output of the first signal; in response to the secondcharacteristics reaching a second threshold, determining aresponsiveness of the surface of the object to the haptic effect; andoutputting a second signal based on the responsiveness, the secondsignal configured to cause the haptic output device to output a secondhaptic effect to the surface.

One example device includes a surface; a sensor; a haptic output devicein communication with the surface; a processor in communication with theoutput device and the sensor, the processor configured to: output afirst signal to the output device, the first signal configured to causethe haptic output device to output a haptic effect to the surface;determine first characteristics of a surface of an object responding tothe haptic effect based on one or more first sensor signals receivedfrom the sensor; in response to the first characteristics reaching afirst threshold, discontinue output of the first signal; determinesecond characteristics of a surface of an object responding to thediscontinuing of the first signal based on one or more second sensorsignals received from the sensor; in response to the secondcharacteristics reaching a second threshold, determine a responsivenessof the surface of the object to the haptic effect; adjust a hapticeffect parameter based on the responsiveness; and output a second signalbased on the responsiveness, the second signal configured to cause thehaptic output device to output a second haptic effect to the surface.

One example non-transitory computer-readable medium includesprocessor-executable program code, wherein the program code isconfigured to cause a processor to output a first signal to a outputdevice, the first signal configured to cause the output device to outputa haptic effect to a surface; determine one or more firstcharacteristics of a surface of an object responding to the hapticeffect; in response to the first characteristics reaching a firstthreshold, discontinue output of the first signal; determine one or moresecond characteristics of a surface of an object responding to thediscontinuing of the first signal; in response to the secondcharacteristics reaching a second threshold, determine a responsivenessof the surface of the object to the haptic effect; adjust a hapticeffect parameter based on the responsiveness; and output a second signalbased on the responsiveness, the second signal configured to cause thehaptic output device to output a second haptic effect to the surface.

These illustrative examples are mentioned not to limit or define thescope of this disclosure, but rather to provide examples to aidunderstanding thereof. Illustrative examples are discussed in thedetailed description, which provides further description. Advantagesoffered by various examples may be further understood by examining thisspecification.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated into and constitute apart of this specification, illustrate one or more certain examples and,together with the description of the example, serve to explain theprinciples and implementations of the certain examples.

FIGS. 1A-1C show an example system for closed-loop control for hapticfeedback according to this disclosure;

FIG. 2 shows an example plot of a velocity of a surface of an objectover a period of time;

FIG. 3 shows an example method for closed-loop control for hapticfeedback according to this disclosure;

FIGS. 4-5E show example signals for outputting an ESF haptic effect;

FIG. 6 shows an example method for closed-loop control for hapticfeedback according to this disclosure;

FIG. 7A shows an example frequency response of a surface of an objectover a period of time;

FIGS. 7B-7C show example frequency response models of a surface of anobject;

FIGS. 8A-8C show an example system for closed-loop control for hapticfeedback according to this disclosure; and

FIGS. 9A-10 show example systems for closed-loop control for hapticfeedback according to this disclosure.

DETAILED DESCRIPTION

Examples are described herein in the context of systems and methods forclosed-loop control for haptic feedback. Those of ordinary skill in theart will realize that the following description is illustrative only andis not intended to be in any way limiting. Reference will now be made indetail to implementations of examples as illustrated in the accompanyingdrawings. The same reference indicators will be used throughout thedrawings and the following description to refer to the same or likeitems.

In the interest of clarity, not all of the routine features of theexamples described herein are shown and described. It will, of course,be appreciated that in the development of any such actualimplementation, numerous implementation-specific decisions must be madein order to achieve the developer's specific goals, such as compliancewith application- and business-related constraints, and that thesespecific goals will vary from one implementation to another and from onedeveloper to another.

Illustrative Example Method for Closed-Loop Control for Haptic Feedback

In an illustrative example, a user touches her fingertip to a locationon the smartphone, which captures her fingerprint and automaticallyunlocks the smartphone and activates a user profile on the phone. Theuser then begins to use her smartphone, which is equipped with anelectro-static force-generating (“ESF”) haptic output device that canapply ESF-based haptic feedback to the surface of the smartphone'sdisplay. As the user uses the smartphone, different applications causethe ESF haptic output device to output various ESF haptic effects toprovide haptic feedback. However, as the smartphone outputs the ESFeffects, it monitors the motion of the skin on the user's fingertip asthe effects are applied to determine the skin's responsiveness to thevarious ESF effects. For example, the smartphone may output an ESFhaptic effect that involves sending a square wave drive signal to theESF haptic output device. While outputting the effect, the smartphonecaptures images of the movement of skin on the user's fingertip using asmall camera positioned at the top of the smartphone and oriented tocapture images along the surface of the display. Thus, the smartphone isable to capture a succession of images a side view of the user'sfingertip as the effect is applied. From the captured images, thesmartphone is able to determine how quickly the skin on the user'sfingertip responds to the applied ESF haptic effect.

After capturing the images, and while the haptic effect is being output,the smartphone determines that haptic effect produced by the square wavedoes not allow the skin to return to its rest position, e.g., while thesquare wave was outputting a “0” to the ESF haptic output device, beforeattracting the skin of the fingertip towards the surface again. Thus,the smartphone determines that the period of the square wave is tooshort and the haptic effect felt by the user is not optimal. Thesmartphone then reduces the frequency of the square wave and capturesadditional images to determine whether the frequency of the square waveshould be further tuned to provide a stronger haptic effect.

As the smartphone continues to tune the square wave, it develops a modelof the user's skin that can be re-used when haptic effects are outputagain in the future. The model, in this illustrative example, includesinformation about a resonant frequency of the skin on the fingertip aswell as frequency response information, such as gain information, forother frequencies, and associates the model with the user's profile onthe smartphone.

At a later time, the user interacts with an application that providesdifferent intensities of ESF effects. To generate appropriate signals todrive the ESF haptic output device, the application accesses the user'sprofile to obtain the model of the user's skin to identify optimalfrequencies at which to output the ESF haptic effect and generates thedrive signal based on the model. For example, to output the strongestpossible effect, the application may identify a resonant frequency ofthe user's skin and generate a drive signal to output an ESF hapticeffect at that frequency. However, to output a milder effect, theapplication may instead select a frequency that corresponds to a poorfrequency response of the user's skin. Further, in some examples,determinations of characteristics of a particular object may be used inconjunction with one or more tables providing data indicating acorrespondence between one or more perception thresholds for aparticular applied effect and one or more frequencies at which theeffect may be applied.

Such an example illustrates closed-loop control for haptic feedback.This illustrative example is not intended to be in any way limiting, butinstead is intended to provide an introduction to the subject matter ofthe present application. Other examples of closed-loop control forhaptic feedback are described below.

Referring now to FIGS. 1A-1C, FIGS. 1A-1C show an example system 100 forclosed-loop control for haptic feedback according to this disclosure.The system 100 is shown in cross-section and with a simulated surface(skin) 130 of a user's fingertip. The system shown in FIGS. 1A-1Cincludes a surface 110, an haptic output device 120, and a sensor 140.In this example, the haptic output device 120 comprises an ESF hapticoutput device, and the sensor 140 comprises an image sensor oriented tocapture an image along the surface 110 of the skin 130 of the user'sfingertip as it deforms in response to an ESF effect. In some examples,the sensor 140 may comprise a plurality of infrared sensors arranged inone or more rows and oriented to sense infrared emissions above thesurface 110 from the skin 130 of the user's fingertip. By using multiplerows of such sensors at different elevations, movement of the skin 130of the user's fingertip may be sensed. Still other types of sensors maybe employed, such as event-based cameras. It should be noted that whilein this example, the haptic output device comprises an ESF haptic outputdevice, other types of haptic output devices may be employed. Forexample, suitable haptic output devices may include ultrasound hapticoutput devices, haptic output devices that output one or more puffs ofair, etc. Such haptic output devices may operate by pushing against asurface of an object (e.g., the skin on a user's fingertip), rather thanattracting the surface of the object. However, example methods, devices,and systems according to this disclosure could be adapted to accommodaterepulsive forces rather than attractive forces, such as by reversing thesign of one or more quantities or reversing one or more test conditionsaccording to various examples.

It should be noted that when used in the specification, the term“non-contact” or “non-contact-based” refers to forces that may beapplied while an object, e.g., a fingertip, is not contacting a surface,e.g., the surface 110 shown in FIG. 1. However, this does not precludecontact between the object and the surface. For example, haptic effectsmay still be applied to a fingertip in contact with the surface, and maystill be felt by the user, or examples according to this disclosure mayresult in contact between the object and the surface. Examples accordingto this disclosure may be operative both when the object is in contactwith the surface and when it is not, though different sensors may beemployed or different portions of the surface of the object may besensed based on whether the surface of the object is in contact with thesurface or not. For example, a pressure sensor may be employed to detectresponsiveness of the surface of the object when in contact with thesurface, or an image sensor may only monitor characteristics or portionsof the surface of the object that are not in contact with the surface.Still further examples may be discerned from a close examination of thisdisclosure.

FIG. 1A shows the system 100 at rest while the ESF haptic output device120 is not outputting an ESF effect. As can be seen, the skin 130 on theuser's fingertip is at rest. In FIG. 1B, the ESF haptic output device120 is energized and is outputting an ESF effect, which attracts theskin 130 on the fingertip towards the surface 110, as indicated by thearrow 150. As the skin 130 on the fingertip is attracted towards thesurface, the skin 130 stretches until it reaches a maximum amount ofstretch (or displacement from rest). At a later time, illustrated inFIG. 1C, the ESF haptic output device 120 ceases outputting the ESFeffect and the skin 130 on the fingertip 130 returns to its restposition, as indicated by arrow 160.

FIG. 2 illustrates a graph showing the velocity of skin 130 on thefingertip as it is cyclically attracted towards the surface 110 andallowed to return to its rest position over time. As can be seen, thevelocity increases from 0 (indicated by dashed line 240) to a maximumvelocity 210 as the skin stretches towards the surface 110. As the skinreaches its maximum displacement, the velocity will decrease to zero. Ifthe ESF effect is discontinued at this time, the skin will begin torebound towards its rest position and the velocity will increase to amaximum velocity and then decrease towards zero as it returns to a restposition. Thus, by determining velocities of the skin 130 while ESFeffects are applied and discontinued, and in particular the time betweenwhen the velocities cross zero (indicating, e.g., maximum or minimumdisplacement), characteristics of the user's skin 130 may be determinedand used to tune ESF haptic effects.

It should be appreciated that the rest position and the maximumdisplacement may include some overshoot as the skin responds to variousESF effects, thus velocities may provide a way to avoid using exact restpositions or maximum displacement positions to determine the skin'sresponse. However, the graph shown in FIG. 2 could instead illustratedisplacement versus time, acceleration versus time, etc. In either case,maximum or minimum values of displacement or acceleration may provideinformation usable in various examples according to this disclosurerather than, or in addition to, zero velocity.

Referring now to FIG. 3, FIG. 3 shows an example method for closed-loopcontrol for haptic feedback. The method 300 of FIG. 3 will be discussedwith respect to the system 100 of FIG. 1 and with respect to ESF hapticeffects, though any other haptic effect may be used in other examples.In addition, it should be noted that other suitable systems or devicesaccording to this disclosure may be used as well, such as those shown inFIGS. 9A-10 and described in detail below.

The method 300 of FIG. 3 begins in block 310 when a processor outputs afirst signal to the ESF haptic output device to cause the ESF outputdevice to output an ESF effect to the surface 110. In this example, thefirst signal comprises a direct current (DC) drive signal. In someexamples, however, a drive signal may comprise other characteristics.For example, a drive signal may comprise an alternating current (AC)drive signal having a frequency in the range of approximately 10 to 1000Hz (+/−1%). In some examples, higher frequency AC signals may be output,such as having frequencies up to 1 MHz or greater, according to anenvelope that varies the magnitude at a lower frequency. For example, anAC signal having a frequency of 5 kHz and a magnitude that variesaccording to an envelope having a frequency of 500 Hz, as may be seen inFIG. 4. And while the example shown in FIG. 4 comprise sinusoidalwaveforms, other suitable waveforms may be employed. For example, FIGS.5A-E shows examples of other drive signals that may be employed,including sinusoidal waves 510, sawtooth waves 520, square waves 530,step-up square waves 540, and step-up/step-down square waves 550 Stillother types of periodic or aperiodic waveforms may be employed in someexamples according to this disclosure.

At block 320, the processor determines a characteristic of the surfaceof an object 130 positioned above the surface 110. In this example, theobject 130 is a human fingertip, and the surface of the object 130 isthe skin on the fingertip. As discussed above, when an ESF output device120 is energized, it may draw the skin towards the surface, and when theESF output device 120 is de-energized, the skin may rebound to itsresting position. For example, as the skin moves towards the surface,its velocity will increase and then decrease to zero as the skin reachesa point of maximum stretch, based on the force output by the ESF outputdevice 120.

As the skin moves, a sensor detects the movement of the skin andprovides sensor signals to the processor. The processor determines thecharacteristic, e.g., the velocity, of the skin at successive times anddetermines when the characteristic reaches a threshold value. Forexample, if the processor determines the skin's velocity at successivetimes, it may set a threshold at zero and determine approximately whenthe skin's velocity reaches zero, e.g., at the point of maximum stretch.In some examples, the processor may determine a characteristic based ondifferences between successive sensor signals. In one example, thesensor comprises a camera oriented to capture images along the plane ofthe surface 110, and thus may directly observe, for example, the amountthe skin has stretched. By determining differences in a gap between theskin and the surface, the processor may determine a velocity, such as inmillimeters (mm) per second. In some examples, the processor may notdetermine an absolute velocity (e.g., mm/second), but may instead,determine a velocity based on a difference in the number of scan lineshaving captured the skin in successive images. Further, because imagesmay be taken at discrete times, the point of maximum stretch may not becaptured in an image, but may be determined based on interpolationtechniques, such as linear interpolation, polynomial interpolation, orspline interpolation, between two or more successive images. In someexamples, rather than interpolating to determine an approximate time atwhich the velocity reached zero, the system may determine a sign changein a velocity (or other characteristic) and use that as a proxy fordetermining that a zero crossing had occurred.

In some examples, other types of sensors may be employed. For exampleproximity sensors, such as capacitive sensors, ultrasound sensors, orother range sensors may be employed. In some such examples, theprocessor may receive successive sensor signals indicative of avelocity, a position, an acceleration, or other characteristic of theskin. The processor may then determine one or more velocities of theskin. Further, for each of these techniques, one or more interpolationtechniques may be employed to determine characteristics of the surfaceof the object at times without information from a corresponding sensorsignal.

As discussed above, it should be appreciated that the rest position andthe maximum displacement may include some overshoot as the skin respondsto various ESF effects, thus different characteristics may provide a wayto avoid using exact rest positions or maximum displacement positions todetermine the skin's response. However, in some examples,characteristics of the skin other than velocity may be employed. Forexample, the processor may instead (or in addition) determine adisplacement or an acceleration of the skin. For example, some sensorsmay provide signals better suited to determining a position or anacceleration, or in some examples, it may be less computationallyexpensive to determine a position or an acceleration. In some suchexamples, maximum or minimum values of displacement or acceleration mayprovide information usable in various examples according to thisdisclosure rather than, or in addition to, velocity information.

In some examples, the processor may determine multiple characteristicsof the surface of the object 130. For example, the processor maydetermine a displacement of the surface of the object as well as avelocity, or an acceleration or changes in velocity over time as thesurface of the object 130 moves towards the surface 110.

While the examples above have been discussed in the context of assuminga surface moves uniformly, other examples may measure movements of thesurface of the object at two or more locations. For example, skin on auser's fingertip may accelerate or move at different rates based onanatomical variations throughout the fingertip. Thus, a sensor maymeasure multiple locations on the fingertip to determine a response ofthe skin to the applied effect. For example, the system 100 may measurethe velocity of multiple locations on the fingertip and determinevelocities or other characteristics at each point.

It should be noted that a surface of the object may move in response toan applied effect, but may also move due to movement of the objectitself, e.g., a user moves her fingertip. In some examples, sensorinformation may be filtered to filter out slow movements, which arelikely indicative of the object itself moving, and identifying movementsabove a threshold. For example, skin on a user's fingertip will move atrelatively high velocities in response to an ESF effect, e.g., whenvibrating in the 100-1000 Hz range, while the fingertip may move muchmore slowly as the user attempts to hold their finger over the surface.In some examples, rather than filtering (or in addition to filtering),one or more separate sensors may be used to detect gross movement of theobject itself, such as one or more proximity sensors.

At block 330, the processor determines whether the characteristic of theskin has reached a threshold. If not, the method 300 returns to block310. If the characteristic has reached the threshold, the methodproceeds to block 340. It should be noted that a threshold may bedefined by a value, or a range of values, or it may be defined as anyother value or condition, such as by a change in sign of a determinedcharacteristics (e.g., velocity), or a characteristic reaching a maximumor minimum value, e.g., the continued application of the effect resultsin no further change in the characteristic over time.

As discussed above, the processor may employ techniques such asinterpolation techniques discussed above to determine when a velocityreaches zero, thus, a measured velocity may not be zero, however, thevelocity may have been zero during the most recent iteration, such asbetween two or more successive images or two or more successive sensorsignals, which may cause the method to proceed to block 340.

Further, as discussed above, in some examples, a sensor (or multiplesensors) may sense information about multiple locations on the surfaceof the object. In some examples, the system 100 may determine when thevelocity of each location reaches zero, or when two or more locationsreach zero within a threshold time of each other (e.g., 0.001 seconds).

At block 340, the processor discontinues the outputting the first signalto the ESF output device. As discussed above, the processor may directlyprovide a drive signal to the ESF output device. In some such examples,the processor may halt outputting the drive signal. In some examples,however, the processor may control an enable signal or other signalconfigured to cause another component to generate, output, or allow thefirst signal to be transmitted to the ESF output device.

At block 350, the processor again determines the characteristic of thesurface of the object according to the techniques above; however, atblock 350, the surface of the object, for example, may be rebounding toa rest position in response to the discontinuing of the outputting ofthe first signal. Thus, the characteristics may be determined as havingnegative values in some examples.

At block 360, the processor determines whether the characteristic of theskin has reached a second threshold as discussed above with respect toblock 330. In this example, a second threshold may correspond to a reststate of the surface of the object, or it may be defined as any othervalue or condition, such as discussed above. If the threshold has notbeen reached, the method 300 returns to block 350. Otherwise, the method300 proceeds to block 370.

At block 370, the processor determines a responsiveness of the surfaceof the object 130. For example, the processor may determine a timebetween outputting the first signal and a time at which the velocity ofthe surface of the object 130 reached zero, such as at the point ofmaximum stretch, to determine a stretch time, and the time betweendiscontinuing outputting the first signal and the time at which thevelocity of the surface of the object 130 reached zero to determine arebound time. In some examples, the method may return to block 310 toobtain additional data points to determine a more accurateresponsiveness of the surface of the object 130. For example, the methodmay iterate a predetermined number of times, or it may iterate until astatistical analysis, e.g., a standard deviation, of the data indicatessufficient data has been gathered, or a variation in determinations overmultiple iterations is very small, e.g., less than 5%.

At block 380, the processor outputs a second signal to cause the ESFoutput device to output an ESF effect, the second signal based on thedetermined responsiveness. After the processor determines aresponsiveness of the surface of the object 130, the processor may thendetermine one or more suitable waveforms for generating a new signal forcausing an ESF effect. For example, the processor may determine adesirable frequency for a drive signal for an ESF output device bydetermining a period from the stretch time and the rebound time. Forexample, if the stretch time is 0.0022 seconds and the rebound time is0.0029 seconds, the processor may determine a frequency of 196.1 Hz as adesirable ESF haptic effect by adding the stretch and rebound time toobtain a period for a sine wave. In some examples, the processor mayinstead generate an asymmetric square wave based on different stretchand rebound times. For example, a signal may be generated that has aperiod of 0.0051 seconds based on the example stretch and rebound timesabove, but has an “on” time of 0.0022 seconds and an “off” time of0.0029 seconds. In some examples a periodic waveform may be generatedbased on the ratio between the stretch time and rebound time. In someexamples, a signal generator may comprise a pulse width modulator, whichmay output a pulse-width modulated signal based on such a determinedratio.

It should be noted that the method 300 of FIG. 3 may be performediteratively, such as to apply an ESF effect with a greater or lessermagnitude to determine the impact of such changes in magnitude onresponsiveness of the surface of the object. In addition, the method 300of FIG. 3 may be employed with other types of haptic output devices,such as ultrasound-based haptic output devices, haptic output devicesthat output one or more puffs of air, etc.

Referring now to FIG. 6, FIG. 6 shows an example method for closed-loopcontrol for haptic feedback. The method 600 of FIG. 6 will be discussedwith respect to the system of FIG. 1 and with respect to ESF hapticeffects, though any other haptic effect may be used in other examples.In addition, it should be noted that other suitable systems or devicesaccording to this disclosure may be used as well, such as those shown inFIGS. 9A-10 and described in detail below.

The method 600 of FIG. 6 begins in block 610 when a processor outputs afirst signal to the ESF haptic output device to cause the ESF outputdevice to output an ESF effect to the surface 110. Different examples oftechniques for outputting signals are discussed above with respect toblock 310 of the method 300 of FIG. 3. In this example, the first signalis a predetermined haptic effect based on a generic characterization ofskin on a fingertip. In some examples, however, the first signal maycomprise a first signal of a frequency sweep. For example, the system100 may attempt to determine resonant frequency characteristics of auser's fingertip and may select a start frequency and an end frequency,and at block 610. In one such example, the first signal may be based onthe start frequency.

At block 620, the system 100 determines a characteristic of the surfaceof the object while the ESF effect is output. In one example, the sensorcomprises a camera oriented to capture images along the plane of thesurface 110, and thus may directly observe an amount the skin hasstretched. The camera captures images of the fingertip and, for example,a range of displacement is determined based on the minimum and maximumdisplacements (or velocities, accelerations, etc.) of the skin on thefingertip as the ESF effect is applied. Thus, the system 100 maydetermine a perceived intensity of the ESF effect. For example, dataobtained from the method 300 of FIG. 3 may provide information regardingminimum and maximum displacements of the skin on the fingertip, whichmay be used to determine a perceived intensity of the ESF effect, suchas based on a percentage of the determined ranges of motion.

In some examples, rather than hovering above a surface, an object may bein contact with the surface 110. For example, FIG. 8A illustrates anexample object 830 in contact with a surface 810. A pressure sensor 840is coupled to the surface 810 and configured to sense a pressure of acontact with the surface 810, such as by the contact between the object830 and the surface 810. However, because the object 830 is in contactwith the surface, a pressure between the object 830 and the surface 810may change based on the applied ESF effect. For example, FIG. 8Billustrates that, in response to the haptic effect output by a hapticoutput device 820, the surface of the object 830 deforms as it isattracted 850 towards the surface 810. Thus, a pressure applied to thesurface 810 by the object 830 may change based on the applied hapticeffect. The pressure sensor detects the changes in pressure and providesone or more sensor signals to a processor. As may be seen in FIG. 8C,the object 830 returns 860 to its initial or at-rest state andcorresponding pressure.

While the examples above determines a range of displacements orpressures, other examples may determine other characteristics of thesurface of the object as the ESF effect is applied. For example, maximumand minimum velocities or maximum and minimum accelerations, or maximumor minimum rates of change of pressures or pseudo-pressures may bedetermined. Such characteristics may also provide informationcharacterizing a perceived intensity of the applied ESF effect. Forexample, high maximum velocities or accelerations may be indicative ofhigh intensity effects. It should be noted that maximum and minimumvelocities may refer to positive and negative velocities andaccelerations based on the selected coordinate system, or may referenceonly maximum velocities if only magnitude is employed.

At block 630, the system 100 determines a responsiveness of the surfaceof the object to the ESF effect based on the determinedcharacteristic(s). As discussed above with respect to block 370 of themethod 300 of FIG. 3. In some examples, maximum and minimumdisplacements, pressures, or pseudo-pressures (or velocities,accelerations, rates of change of pressure, etc.) that were previouslydetermined may be compared against the determined range of displacement,pressure, or pseudo-pressure (or velocities, accelerations, rates ofchange of pressure, etc.) to determine a responsiveness of the surfaceof the object to the particular ESF effect.

At block 640, the system 100 adjusts an ESF effect parameter based onthe determined responsiveness of the surface of the object to the ESFeffect. For example, the system may determine that a frequency of theESF effect should be changed to elicit a more forceful reaction of thesurface of the object to the ESF effect. For example, if measurementsregarding the time taken for the surface of the object to move from arest position to a position of maximum stretch and to return to restindicate a period greater than the period of the ESF effect, the periodof the ESF effect may be increased, thereby decreasing the frequency ofthe effect. Such a determination may be made instead with respect to thetime taken for the pressure applied by the object to increase from aninitial pressure to a maximum pressure and return to approximately theinitial pressure (e.g., within +/−1 or 2%). In some examples, themagnitude of the ESF effect may be increased to determine an impact onthe responsiveness of the surface of the object to increased magnitudewhile maintaining a constant frequency. In some examples, multipleparameters may be adjusted, such as magnitude and frequency, such asbased on the characteristics discussed above and with respect to themethod 300 of FIG. 3, as well as other portions of this disclosure.

In some cases, the desired response of the surface of the object 130 maynot be a maximal range of motion, or a maximal change in pressure.Instead, a desired range of motion, change in pressure, or otherresponse may be provided and the system 100 may then adjust the ESFeffect parameter to elicit a response that better matches the desiredresponse, e.g., a particular range or type of motion.

Further, in some examples, different ESF parameters may be employedbased on whether the object is contacting a surface or not contactingthe surface. For example, one set of ESF parameters may be establishedfor ESF effects to be applied to an object positioned above a surface,such as shown in FIG. 1A. Such parameters may be adjusted based on aresponsiveness of the object to an ESF effect while the object is not incontact with the surface. Similarly, a second set of ESF parameters maybe established for ESF effects to be applied to an object that is incontact with a surface, such as shown in FIG. 8A. Such parameters may beadjusted based on a responsiveness of the object to an ESF effect whilethe object is in contact with the surface, such as based on changes inpressure (or pseudo-pressure), or rates of changes in pressure (orpseudo-pressure), as discussed above.

Further, in some examples, an ESF parameter for one or more ESF effectsto be applied to an object that is not in contact with a surface may beadjusted based on a responsiveness of the object while it is in contactwith the surface. For example, the system 100 may treat a responsivenessof an object while in contact with the surface as if the responsivenesswere of the object while not in contact with the surface, and adjusteither or both sets of parameters accordingly. Or, the system 100 maytreat a responsiveness of an object while not in contact with thesurface as if the responsiveness were of the object while in contactwith the surface, and adjust either or both sets of parametersaccordingly. One such example may be employed to initially make coarseadjustments of ESF parameters for a new user, and at a later time, makefiner adjustments of one set of parameters or the other only based onthe corresponding mode of actuation, e.g., only adjust contact-based ESFparameters based on measurements made while an object is in contact withthe surface.

At block 650, the system 100 outputs a signal to the ESF haptic outputdevice to cause the ESF output device to output an ESF effect to thesurface 110 based on the adjusted parameter(s) as discussed above withrespect to block 310 of the method 300 of FIG. 3. The method then mayreturn to block 620 to further determine responsiveness of the surfaceof the object or adjust the ESF effect.

It should be noted that examples according to the method 600 of FIG. 6may be used to tune haptic effects in real-time as a user experiencesthe effect while using a device, such as a smartphone. For example, anapplication executed by a device according to this disclosure may causea haptic effect to be output, but may perform the example method 600 ofFIG. 6 to adjust a frequency of the haptic effect based on theresponsiveness of the skin on the user's fingertip. For example, theskin may have different responsiveness based on whether it is cold orhot, wet or dry, dehydrated or not, clean or dirty, etc. Thus, while amodel of the user's skin may provide a baseline in some examples, afrequency initially selected for the effect may be tuned based on theactual responsiveness of the skin on the user's fingertip, rather thansimply using a model of the skin.

Some examples according to the method 600 of FIG. 6 may apply afrequency sweep to characterize a fingertip of a user over a range offrequencies for subsequent use when outputting haptic effects. In oneexample, the device may ask the user to hold her fingertip over thesurface while one or more frequency sweep is performed to train thedevice for the user. A model may be developed for the user based on theresults of the method and, in some examples, may be associated with auser profile that may be activated when the user logs into the device,or is otherwise recognized by the device. For example, FIG. 7Aillustrates a plot of a response of a surface of an object 130 withrespect to a frequency of an ESF effect, while FIGS. 7B and 7C showexample models 750, 760 of the skin on the user's fingertip based on itsresponse at a particular frequency. In this example, the models 750, 760include records indicating the applied frequency and a response of theskin on the user's fingertip to the applied effect, such as informationregarding whether the response at a particular frequency was a maximumor minimum, whether the maximum or minimum was a local or global valuefor the frequency range, or the maximum displacement of the skin on theuser's fingertip for at the applied frequency. Such information may beemployed to output stronger or weaker effects according to differentexamples.

In addition, the method 600 of FIG. 6 may be employed with other typesof haptic output devices, such as ultrasound-based haptic outputdevices, haptic output devices that output one or more puffs of air,etc.

Referring now to FIGS. 9A and 9B, FIGS. 9A and 9B illustrate an exampledevice 900 for closed-loop control for haptic feedback. In the exampleshown in FIG. 9A, the device includes a tablet 900 that has atouch-sensitive display screen 920 and a haptic output device (notshown) that is capable of outputting vibrational effects to the tablet'shousing. In addition, the device 900 includes a sensor 922 configured todetect a distance between a surface of an object and the touch-sensitivedisplay screen 920. For example, the sensor 922 may comprise one or moreimage sensors oriented to capture one or more images along the surfaceof the touch-sensitive display screen. In some examples, the sensor 922may comprise one or more event-based cameras configured to detectmovement of a surface of an object as it moves towards and away from thetouch-sensitive display screen 920. In some examples, the sensor 922 maycomprise a proximity sensor, such as an ultrasound, capacitive,ultraviolet, or visible-light sensor. In some examples, as discussedabove, the sensor 922 may comprise a pressure sensor or apseudo-pressure sensor.

Referring now to FIG. 9B, FIG. 9B shows an example device forclosed-loop control for haptic feedback. In the example shown in FIG.9B, the device 900 comprises a housing 910, a processor 930, a memory960, a touch-sensitive display 920, a haptic output device 940, one ormore sensors 950, one or more communication interfaces 980, and one ormore speakers 970. In addition, the device 900 is in communication withhaptic output device 990, which may be optionally coupled to orincorporated into some embodiments. The processor 930 is incommunication with the memory 960 and, in this example, both theprocessor 930 and the memory 960 are disposed within the housing 910.The touch-sensitive display 920, which comprises or is in communicationwith a touch-sensitive surface, is partially disposed within the housing910 such that at least a portion of the touch-sensitive display 920 isexposed to a user of the device 900. In some embodiments, thetouch-sensitive display 920 may not be disposed within the housing 910.For example, the device 900 may be connected to or otherwise incommunication with a touch-sensitive display 920 disposed within aseparate housing. In some example, the housing 910 may comprise twohousings that may be slidably coupled to each other, pivotably coupledto each other or releasably coupled to each other.

In the example shown in FIG. 9B, the touch-sensitive display 920 is incommunication with the processor 930 and is configured to providesignals to the processor 930 or the memory 960 and to receive signalsfrom the processor 930 or memory 960. The memory 960 is configured tostore program code or data, or both, for use by the processor 930, whichis configured to execute program code stored in memory 960 and totransmit signals to and receive signals from the touch-sensitive display920. In the example shown in FIG. 9B, the processor 930 is also incommunication with the communication interface 980 and is configured toreceive signals from the communication interface 980 and to outputsignals to the communication interface 980 to communicate with othercomponents or devices such as one or more remote computers or servers.In addition, the processor 930 is in communication with haptic outputdevice 940 and haptic output device 990, and is further configured tooutput signals to cause haptic output device 940 or haptic output device990, or both, to output one or more haptic effects. Furthermore, theprocessor 930 is in communication with speaker 970 and is configured tooutput signals to cause speaker 970 to output sounds. In variousembodiments, the device 900 may comprise or be in communication withfewer or additional components or devices. For example, other user inputdevices such as a mouse or a keyboard, or both, or an additionaltouch-sensitive device may be comprised within the device 900 or be incommunication with the device 900. As another example, device 900 maycomprise and/or be in communication with one or more accelerometers,gyroscopes, digital compasses, and/or other sensors. A detaileddescription of the components of the device 900 shown in FIG. 9B andcomponents that may be in association with the device 900 are describedherein.

The device 900 can be any device that is capable of receiving user inputand executing software applications. For example, the device 900 in FIG.9B includes a touch-sensitive display 920 that comprises atouch-sensitive surface. In some embodiments, a touch-sensitive surfacemay be overlaid on the touch-sensitive display 920. In otherembodiments, the device 900 may comprise or be in communication with adisplay and a separate touch-sensitive surface. In still otherembodiments, the device 900 may comprise or be in communication with adisplay and may comprise or be in communication with other user inputdevices, such as a mouse, a keyboard, buttons, knobs, slider controls,switches, wheels, rollers, joysticks, other manipulanda, or acombination thereof.

In some embodiments, one or more touch-sensitive surfaces may beincluded on or disposed within one or more sides of the device 900. Forexample, in one example, a touch-sensitive surface is disposed within orcomprises a rear surface of the device 900. In another example, a firsttouch-sensitive surface is disposed within or comprises a rear surfaceof the device 900 and a second touch-sensitive surface is disposedwithin or comprises a side surface of the device 900. In someembodiments, the system may comprise two or more housing components,such as in a clamshell arrangement or in a slidable arrangement. Forexample, one example comprises a system having a clamshell configurationwith a touch-sensitive display disposed in each of the portions of theclamshell. Furthermore, in examples where the device 900 comprises atleast one touch-sensitive surface on one or more sides of the device 900or in examples where the device 900 is in communication with an externaltouch-sensitive surface, the display 920 may or may not comprise atouch-sensitive surface. In some embodiments, one or moretouch-sensitive surfaces may have a flexible touch-sensitive surface. Inother embodiments, one or more touch-sensitive surfaces may be rigid. Invarious embodiments, the device 900 may comprise both flexible and rigidtouch-sensitive surfaces.

In various embodiments, the device 900 may comprise or be incommunication with fewer or additional components than the example shownin FIG. 9B. For example, in one example, the device 900 does notcomprise a speaker 970. In another example, the device 900 does notcomprise a touch-sensitive display 920, but comprises a touch-sensitivesurface and is in communication with a display. Thus, in variousembodiments, the device 900 may comprise or be in communication with anynumber of components, such as in the various examples disclosed hereinas well as variations that would be apparent to one of skill in the art.

The housing 910 of the device 900 shown in FIG. 9B provides protectionfor at least some of the components of device 900. For example, thehousing 910 may be a plastic casing that protects the processor 930 andmemory 960 from environmental conditions, such as rain, dust, etc. Insome embodiments, the housing 910 protects the components in the housing910 from damage if the device 900 is dropped by a user. The housing 910can be made of any suitable material including but not limited toplastics, rubbers, or metals. Various examples may comprise differenttypes of housings or a plurality of housings. For example, in someembodiments, the device 900 may be a portable device, handheld device,toy, gaming console, handheld video game system, gamepad, gamecontroller, desktop computer, e-book reader, portable multifunctiondevice such as a cell phone, smartphone, personal digital assistant(PDA), laptop, tablet computer, digital music player, etc.

In some examples, the device 900 may be embedded in another device suchas a wrist watch, a virtual-reality headset, other jewelry, such asbracelets, wristbands, rings, earrings, necklaces, etc., gloves,eyeglasses, augmented-reality (“AR”) devices, such as AR headsets, orother wearable device. Thus, in some examples, the device 900 iswearable. In one example, the device 900, such as a wearable device,does not comprise a display screen, but instead may comprise one or morenotification mechanisms, such as one or more lights, such as one or moreindividual LEDs, one or more haptic output devices, one or morespeakers, etc. Such a device 900 may be configured to generate one ormore notifications to a user using one or more such notificationmechanisms.

In the example shown in FIG. 9B, the touch-sensitive display 920provides a mechanism to allow a user to interact with the device 900.For example, the touch-sensitive display 920 detects the location orpressure, or both, of a user's finger in response to a user hoveringover, touching, or pressing the touch-sensitive display 920 (all ofwhich may be referred to as a contact in this disclosure). In oneexample, a contact can occur through the use of a camera. For example, acamera may be used to track a viewer's eye movements as the user viewsthe content displayed on the display 920 of the device 900, or theuser's eye movements may be used to transmit commands to the device,such as to turn a page or to highlight a portion of text. In thisexample, haptic effects may be triggered based at least in part on theviewer's eye movements. For example, a haptic effect may be output whena determination is made that the viewer is viewing content at aparticular location of the display 920. In some embodiments, thetouch-sensitive display 920 may comprise, be connected with, orotherwise be in communication with one or more sensors that determinethe location, pressure, size of a contact patch, or any of these, of oneor more contacts on the touch-sensitive display 920.

In some embodiments, the touch-sensitive display 920 may comprise amulti-touch touch-sensitive display that is capable of sensing andproviding information relating to a plurality of simultaneous contacts.For example, in one example, the touch-sensitive display 920 comprisesor is in communication with a mutual capacitance system. Some examplesmay have the ability to sense pressure or pseudo-pressure and mayprovide information to the processor associated with a sensed pressureor pseudo-pressure at one or more contact locations. In another example,the touch-sensitive display 920 comprises or is in communication with anabsolute capacitance system. In some embodiments, the touch-sensitivedisplay 920 may comprise or be in communication with a resistive panel,a capacitive panel, infrared LEDs, photodetectors, image sensors,optical cameras, or a combination thereof. Thus, the touch-sensitivedisplay 920 may incorporate any suitable technology to determine acontact on a touch-sensitive surface such as, for example, resistive,capacitive, infrared, optical, thermal, dispersive signal, or acousticpulse technologies, or a combination thereof.

In the example shown in FIG. 9B, haptic output device 940 and hapticoutput device 990 are in communication with the processor 930 and areconfigured to provide one or more haptic effects. For example, in oneexample, when an actuation signal is provided to haptic output device940, haptic output device 990, or both, by the processor 930, therespective haptic output device(s) 940, 990 outputs a haptic effectbased on the actuation signal. For example, in the example shown, theprocessor 930 is configured to transmit a haptic output signal to hapticoutput device 940 comprising an analog drive signal. In someembodiments, the processor 930 is configured to transmit a high-levelcommand to haptic output device 990, wherein the command includes acommand identifier and zero or more parameters to be used to generate anappropriate drive signal to cause the haptic output device 990 to outputthe haptic effect. In other embodiments, different signals and differentsignal types may be sent to each of one or more haptic output devices.For example, in some embodiments, a processor may transmit low-leveldrive signals to drive a haptic output device to output a haptic effect.Such a drive signal may be amplified by an amplifier or may be convertedfrom a digital to an analog signal, or from an analog to a digitalsignal using suitable processors or circuitry to accommodate theparticular haptic output device being driven.

A haptic output device, such as haptic output device 990, can be anycomponent or collection of components that is capable of outputting oneor more haptic effects. For example, a haptic output device can be oneof various types including, but not limited to, an eccentric rotationalmass (ERM) actuator, a linear resonant actuator (LRA), a piezoelectricactuator, a voice coil actuator, an electro-active polymer (EAP)actuator, a shape memory alloy, a pager, a DC motor, an AC motor, amoving magnet actuator, a smartgel, an electrostatic actuator, anelectrotactile actuator, a deformable surface, an electrostatic friction(ESF) device, an ultrasonic friction (USF) device, or any other hapticoutput device or collection of components that perform the functions ofa haptic output device or that are capable of outputting a hapticeffect. Multiple haptic output devices or different-sized haptic outputdevices may be used to provide a range of vibrational frequencies, whichmay be actuated individually or simultaneously. Various examples mayinclude a single or multiple haptic output devices and may have the sametype or a combination of different types of haptic output devices.

In other embodiments, deformation of one or more components can be usedto produce a haptic effect. For example, one or more haptic effects maybe output to change the shape of a surface or a coefficient of frictionof a surface. In an example, one or more haptic effects are produced bycreating electrostatic forces and/or ultrasonic forces that are used tochange friction on a surface. In other embodiments, an array oftransparent deforming elements may be used to produce a haptic effect,such as one or more areas comprising a smartgel. Haptic output devicesalso broadly include non-mechanical or non-vibratory devices such asthose that use electrostatic friction (ESF), ultrasonic surface friction(USF), or those that induce acoustic radiation pressure with anultrasonic haptic transducer, or those that use a haptic substrate and aflexible or deformable surface, or those that provide projected hapticoutput such as a puff of air using an air jet, and so on. In someexamples comprising haptic output devices, such as haptic output device990, that are capable of generating frictional or deformation effects,the haptic output device may be overlaid on the touch-sensitive displayor otherwise coupled to the touch-sensitive display 920 such that thefrictional or deformation effects may be applied to a touch-sensitivesurface that is configured to be touched by a user. In some embodiments,other portions of the system may provide such forces, such as portionsof the housing that may be contacted by the user or in a separatetouch-separate input device coupled to the system. Co-pending U.S.patent application Ser. No. 13/092,484, filed Apr. 22, 2011, entitled“Systems and Methods for Providing Haptic Effects,” the entirety ofwhich is hereby incorporated by reference, describes ways that one ormore haptic effects can be produced and describes various haptic outputdevices.

It will be recognized that any type of input synthesis method may beused to generate the interaction parameter from one or more hapticeffect signals including, but not limited to, the method of synthesisexamples listed in TABLE 1 below.

TABLE 1 METHODS OF SYNTHESIS Synthesis Method Description Additivesynthesis combining inputs, typically of varying amplitudes Subtractivefiltering of complex signals or multiple signal synthesis inputsFrequency modulating a carrier wave signal with one or more modulationoperators synthesis Sampling using recorded inputs as input sourcessubject to modification Composite using artificial and sampled inputs tosynthesis establish a resultant “new” input Phase altering the speed ofwaveforms stored in wave- distortion tables during playback Waveshapingintentional distortion of a signal to produce a modified resultResynthesis modification of digitally sampled inputs before playbackGranular combining of several small input segments into a synthesis newinput Linear predictive similar technique as used for speech synthesiscoding Direct digital computer modification of generated waveformssynthesis Wave sequencing linear combinations of several small segmentsto create a newinput Vector synthesis technique for fading between anynumber of different input sources Physical modeling mathematicalequations of the physical characteristics of virtual motion

In the example device in FIG. 9B, the sensor 950 is configured togenerate one or more sensor signals that may be used to determine alocation of the device 900. For example, the sensor 950 may comprise aGPS receiver. In some examples, the sensor 950 may be a WiFi componentthat is capable of receiving WiFi signals and providing those signals tothe processor 930. In some examples, the sensor 950 may be one or moreaccelerometers or gyroscopes configured to detect a movement of thedevice 900.

In the example device in FIG. 9B, the communication interface 980 is incommunication with the processor 930 and provides wired or wirelesscommunications from the device 900 to other components or other devices.For example, the communication interface 980 may provide wirelesscommunications between the device 900 and a communications network. Insome embodiments, the communication interface 980 may providecommunications to one or more other devices, such as another device 900and/or one or more other devices. The communication interface 980 can beany component or collection of components that enables the device 900 tocommunicate with another component, device, or network. For example, thecommunication interface 980 may comprise a PCI communication adapter, aUSB network adapter, or an Ethernet adapter. The communication interface980 may communicate using wireless Ethernet, including 802.11 a, g, b,or n standards. In one example, the communication interface 980 cancommunicate using Radio Frequency (RF), Bluetooth, CDMA, TDMA, FDMA,GSM, Wi-Fi, satellite, or other cellular or wireless technology. Inother embodiments, the communication interface 980 may communicatethrough a wired connection and may be in communication with one or morenetworks, such as Ethernet, token ring, USB, FireWire 1394, fiber optic,etc. In some embodiments, device 900 comprises a single communicationinterface 980. In other embodiments, device 900 comprises two, three,four, or more communication interfaces.

Referring now to FIG. 10, FIG. 10 shows an example device 1000 forclosed-loop control for haptic feedback. The example device 1000comprises a surface 1010, a output device 1020, and proximity sensor1030 overlaid on the surface. In this example, the proximity sensor 1030comprises a capacitive proximity sensor. In this example, the device1000 is configured to output ESF effects to the surface 1010 and todetermine movement of a surface of an object 1040 as the surface of theobject 1040 responds to the ESF effects. As discussed above, the surfaceof the object 1040 may be attracted towards the surface 1010 while anESF effect is applied. As the surface of the object 1040 moves inresponse to an ESF effect, the proximity sensor 1030 may provide sensorsignals to a processor (not shown), which may determine characteristicsof the surface of the object, such as velocities, displacements,positions, accelerations, etc., in response to an ESF effect.

While the device 1000 of FIG. 10 comprises a capacitive proximity sensor1030, any suitable proximity sensor may be employed. In some examples,the device 1000 (or other devices or systems according to thisdisclosure) may comprise a dedicated surface region where haptic effectsmay be applied. In some such examples, an image sensor may be positionedbeneath the surface region and oriented to capture images of the surfaceof the object as a haptic effect is applied and may determinecharacteristics of the surface of the object based on changes in shape,reflectance, or other visual characteristics of the surface of theobject. In some examples, rather than (or in addition to) an imagesensor, a laser vibrometer may be employed to detect characteristics ofthe surface of the object 1040 based on reflected laser light.

While some examples of methods and systems herein are described in termsof software executing on various machines, the methods and systems mayalso be implemented as specifically-configured hardware, such asfield-programmable gate array (FPGA) specifically to execute the variousmethods. For example, examples can be implemented in digital electroniccircuitry, or in computer hardware, firmware, software, or in acombination thereof. In one example, a device may include a processor orprocessors. The processor comprises a computer-readable medium, such asa random access memory (RAM) coupled to the processor. The processorexecutes computer-executable program instructions stored in memory, suchas executing one or more computer programs for editing an image. Suchprocessors may comprise a microprocessor, a digital signal processor(DSP), an application-specific integrated circuit (ASIC), fieldprogrammable gate arrays (FPGAs), and state machines. Such processorsmay further comprise programmable electronic devices such as PLCs,programmable interrupt controllers (PICs), programmable logic devices(PLDs), programmable read-only memories (PROMs), electronicallyprogrammable read-only memories (EPROMs or EEPROMs), or other similardevices.

Such processors may comprise, or may be in communication with, media,for example computer-readable storage media, that may store instructionsthat, when executed by the processor, can cause the processor to performthe steps described herein as carried out, or assisted, by a processor.Examples of computer-readable media may include, but are not limited to,an electronic, optical, magnetic, or other storage device capable ofproviding a processor, such as the processor in a web server, withcomputer-readable instructions. Other examples of media comprise, butare not limited to, a floppy disk, CD-ROM, magnetic disk, memory chip,ROM, RAM, ASIC, configured processor, all optical media, all magnetictape or other magnetic media, or any other medium from which a computerprocessor can read. The processor, and the processing, described may bein one or more structures, and may be dispersed through one or morestructures. The processor may comprise code for carrying out one or moreof the methods (or parts of methods) described herein.

The foregoing description of some examples has been presented only forthe purpose of illustration and description and is not intended to beexhaustive or to limit the disclosure to the precise forms disclosed.Numerous modifications and adaptations thereof will be apparent to thoseskilled in the art without departing from the spirit and scope of thedisclosure.

Reference herein to an example or implementation means that a particularfeature, structure, operation, or other characteristic described inconnection with the example may be included in at least oneimplementation of the disclosure. The disclosure is not restricted tothe particular examples or implementations described as such. Theappearance of the phrases “in one example,” “in an example,” “in oneimplementation,” or “in an implementation,” or variations of the same invarious places in the specification does not necessarily refer to thesame example or implementation. Any particular feature, structure,operation, or other characteristic described in this specification inrelation to one example or implementation may be combined with otherfeatures, structures, operations, or other characteristics described inrespect of any other example or implementation.

That which is claimed is:
 1. A method comprising: outputting a firstsignal configured to cause a haptic output device to output a hapticeffect to a surface; determining one or more first characteristics of asurface of an object responding to the haptic effect; in response to thefirst characteristics reaching a first threshold, discontinuing outputof the first signal; determining one or more second characteristics ofthe surface of the object responding to the discontinuing output of thefirst signal; in response to the second characteristics reaching thesecond threshold, determining a responsiveness of the surface of theobject to the haptic effect; and outputting a second signal based on theresponsiveness, the second signal configured to cause the haptic outputdevice to output a second haptic effect to the surface.
 2. The method ofclaim 1, further comprising iteratively performing the steps ofoutputting the first signal, determining the first characteristics,discontinuing output of the first signal, and determining the secondcharacteristics to determine an approximate resonant frequency of thesurface of the object.
 3. The method of claim 1, wherein the hapticoutput device comprises an electrostatic friction (ESF) haptic outputdevice, and wherein the haptic effect comprises an ESF haptic effect. 4.The method of claim 1, further comprising iteratively performing thesteps of outputting the first signal, determining the firstcharacteristics, discontinuing output of the first signal, anddetermining the second characteristics to generate a frequency responsemodel of the surface of the object.
 5. The method of claim 4, furthercomprising generating and outputting a third haptic effect, the thirdhaptic effect based on the frequency response model of the surface ofthe object.
 6. The method of claim 1, wherein determining the first andsecond characteristics are based on images from an image sensor.
 7. Themethod of claim 1, wherein determining the first and secondcharacteristics are based on sensor signals from one or more proximitysensors.
 8. The method of claim 1, wherein determining the first andsecond characteristics are based on sensor signals from one or morepressure sensors.
 9. A device comprising: a surface; a sensor; a hapticoutput device in communication with the surface; a processor incommunication with the output device and the sensor, the processorconfigured to: output a first signal to the haptic output device, thefirst signal configured to cause the haptic output device to output ahaptic effect to the surface; determine first characteristics of asurface of an object responding to the haptic effect based on one ormore first sensor signals received from the sensor; in response to thecharacteristics reaching a first threshold, discontinue output of thefirst signal; determine second characteristics of the surface of theobject responding to the discontinuing of the first signal based on oneor more second sensor signals received from the sensor; in response tothe second characteristics reaching the second threshold, determine aresponsiveness of the surface of the object to the haptic effect; adjusta haptic effect parameter based on the responsiveness; and output asecond signal to the haptic output device based on the responsiveness,the second signal configured to cause the haptic output device to outputa second haptic effect to the surface.
 10. The device of claim 9,wherein the processor is further configured to iteratively output thefirst signal, determine the first characteristics, discontinue output ofthe first signal, and determine the second characteristics to determinean approximate resonant frequency of the surface of the object.
 11. Thedevice of claim 9, wherein the haptic output device comprises anelectrostatic friction (ESF) haptic output device, and wherein thehaptic effect comprises an ESF haptic effect.
 12. The device of claim 9,wherein the processor is further configured to iteratively output thefirst signal, determine the first characteristics, discontinue output ofthe first signal, and determine the second characteristics to generate afrequency response model of the surface of the object.
 13. The method ofclaim 11, wherein the processor is further configured to generate andoutput a third haptic effect, the third haptic effect based on thefrequency response model of the surface of the object.
 14. The device ofclaim 9, wherein the sensor comprises an image sensor.
 15. The device ofclaim 9, wherein the sensor comprises a proximity sensor.
 16. The deviceof claim 9, wherein the sensor comprises a pressure sensor.
 17. Anon-transitory computer-readable medium comprising processor-executableprogram code, the program code configured to cause a processor to:output a first signal to a output device, the first signal configured tocause the output device to output a haptic effect to a surface;determine one or more first characteristics of a surface of an objectresponding to the haptic effect; in response to the firstcharacteristics reaching a first threshold, discontinue output of thefirst signal; determine one or more second characteristics of thesurface of the object responding to the discontinuing of the firstsignal; in response to the second characteristics reaching a secondthreshold, determine a responsiveness of the surface of the object tothe haptic effect; adjust a haptic effect parameter based on theresponsiveness; and output a second signal to the haptic output devicebased on the responsiveness, the second signal configured to cause thehaptic output device to output a second haptic effect to the surface.18. The non-transitory computer-readable medium of claim 17, wherein theprogram code is further configured to cause the processor to iterativelyoutput the first signal, determine the first characteristics,discontinue output of the first signal, and determine the secondcharacteristics to determine an approximate resonant frequency of thesurface of the object.
 19. The non-transitory computer-readable mediumof claim 17, wherein the haptic output device comprises an electrostaticfriction (ESF) haptic output device, and wherein the haptic effectcomprises an ESF haptic effect.
 20. The non-transitory computer-readablemedium of claim 17, wherein the program code is further configured tocause the processor to iteratively output the first signal, determinethe first characteristics, discontinue output of the first signal, anddetermine the second characteristics to generate a frequency responsemodel of the surface of the object.
 21. The non-transitorycomputer-readable medium of claim 19, wherein the program code isfurther configured to cause the processor to generate and output a thirdhaptic effect, the third haptic effect based on the frequency responsemodel of the surface of the object.
 22. The non-transitorycomputer-readable medium of claim 17, wherein the program code isfurther configured to cause the processor to determine the first andsecond characteristics based one images from an image sensor.
 23. Thenon-transitory computer-readable medium of claim 17, wherein the programcode is further configured to cause the processor to determine the firstand second characteristics based on sensor signals from one or moreproximity sensors.
 24. The non-transitory computer-readable medium ofclaim 17, wherein the program code is further configured to cause theprocessor to determine the first and second characteristics based onsensor signals from one or more pressure sensors.